home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / dragan1r / tack.ctl < prev    next >
Text File  |  1999-07-15  |  4KB  |  124 lines

  1. VERSION 5.00
  2. Begin VB.UserControl PinTack 
  3.    BorderStyle     =   1  'Fixed Single
  4.    CanGetFocus     =   0   'False
  5.    ClientHeight    =   570
  6.    ClientLeft      =   0
  7.    ClientTop       =   0
  8.    ClientWidth     =   285
  9.    ForwardFocus    =   -1  'True
  10.    ScaleHeight     =   38
  11.    ScaleMode       =   3  'Pixel
  12.    ScaleWidth      =   19
  13.    ToolboxBitmap   =   "Tack.ctx":0000
  14.    Begin VB.Image imgNotOnTop 
  15.       Height          =   270
  16.       Left            =   0
  17.       Picture         =   "Tack.ctx":0312
  18.       Top             =   300
  19.       Visible         =   0   'False
  20.       Width           =   285
  21.    End
  22.    Begin VB.Image imgOnTop 
  23.       Height          =   270
  24.       Left            =   0
  25.       Picture         =   "Tack.ctx":078C
  26.       Top             =   0
  27.       Visible         =   0   'False
  28.       Width           =   285
  29.    End
  30. End
  31. Attribute VB_Name = "PinTack"
  32. Attribute VB_GlobalNameSpace = False
  33. Attribute VB_Creatable = True
  34. Attribute VB_PredeclaredId = False
  35. Attribute VB_Exposed = True
  36. Option Explicit
  37.  
  38. Dim ParentPosition As Integer
  39.  
  40. Enum Positions
  41.     Normal
  42.     On_Top
  43. End Enum
  44.  
  45. Enum Borders
  46.     None
  47.     Fixed
  48. End Enum
  49.  
  50. Event Change(NewPosition As Integer)
  51. Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  52. Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  53.  
  54. Property Get FormPosition() As Positions
  55.     FormPosition = ParentPosition
  56. End Property
  57.  
  58. Property Let FormPosition(NewPosition As Positions)
  59.     ParentPosition = NewPosition
  60.     PropertyChanged "FormPosition"
  61.     RaiseEvent Change(CInt(NewPosition))
  62.     ShowMode
  63. End Property
  64.  
  65. Property Get BorderStyle() As Borders
  66.     BorderStyle = UserControl.BorderStyle
  67. End Property
  68.  
  69. Property Let BorderStyle(NewStyle As Borders)
  70.     UserControl.BorderStyle = NewStyle
  71.     PropertyChanged "BorderStyle"
  72.     UserControl_Resize
  73. End Property
  74.  
  75. Private Sub UserControl_Click()
  76.     FormPosition = Abs(ParentPosition - 1)
  77.     ShowMode
  78. End Sub
  79.  
  80. Private Sub UserControl_InitProperties()
  81.     ShowMode
  82. End Sub
  83.  
  84. Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  85.     RaiseEvent MouseDown(Button, Shift, ScaleX(X, ScaleMode, vbContainerPosition), ScaleY(Y, ScaleMode, vbContainerPosition))
  86. End Sub
  87.  
  88. Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  89.     RaiseEvent MouseUp(Button, Shift, ScaleX(X, ScaleMode, vbContainerPosition), ScaleY(Y, ScaleMode, vbContainerPosition))
  90. End Sub
  91.  
  92. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  93.     ParentPosition = PropBag.ReadProperty("FormPosition", 0)
  94.     UserControl.BorderStyle = PropBag.ReadProperty("BorderStyle", 0)
  95.     ShowMode
  96. End Sub
  97.  
  98. Private Sub UserControl_Resize()
  99. Static Started As Boolean
  100.     If Started = True Then Exit Sub
  101.     Started = True
  102.     Addition = UserControl.BorderStyle * UNIT_BORDER
  103.     UserControl.Height = ScaleY(Addition + UNIT_HEIGHT, 3, vbContainerPosition)
  104.     UserControl.Width = ScaleX(Addition + UNIT_WIDTH, 3, vbContainerPosition)
  105.     UserControl.Refresh
  106.     Started = False
  107. End Sub
  108.  
  109. Sub ShowMode()
  110.     Select Case ParentPosition
  111.         Case Normal
  112.             Picture = imgNotOnTop
  113.             SetWindowPos Parent.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
  114.         Case On_Top
  115.             Picture = imgOnTop
  116.             SetWindowPos Parent.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
  117.     End Select
  118. End Sub
  119.  
  120. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  121.     PropBag.WriteProperty "FormPosition", ParentPosition, 0
  122.     PropBag.WriteProperty "BorderStyle", UserControl.BorderStyle, 0
  123. End Sub
  124.